﻿/*Funções javascript & jquery*/

function load_user() {

	// divs a esconder
	$('.log-in').hide();

	if (getEscolaUtilizador() == "Estig") {
		$('#logo_essb, #logo_eseb, #logo_esab').hide();
	}

	if (getEscolaUtilizador() == "Essb") {
		$('#logo_estig, #logo_eseb, #logo_esab').hide();
	}

	if (getEscolaUtilizador() == "Eseb") {
		$('#logo_essb, #logo_estig, #logo_esab').hide();
	}

	if (getEscolaUtilizador() == "Esab") {
		$('#logo_essb, #logo_estig, #logo_eseb').hide();
	}

	//conteudo a mostrar
	$('#logoutdiv, #cont_menu_direito, #titulo_menu_direito, #avisos, #calendario, #cabecalho_mensagens').show();
	$('#opcoes_calendario_cabecalho, #cabecalho_dicas, #conteudo_opcoes_calendario, #dicas, #separador_opcoes').show();
	$('#cabecalho_avaliacoes, #avaliacoes_direita, #anos_anteriores').show();

	mes_login();

	var utilizador_texto = '<span id="span_nome_utilizador">' + getNomeUtilizador() + '</span>';

	$("#nome_utilizador").show();
	$("#nome_utilizador").html(utilizador_texto);

	$("#skip_a").attr("href", "#skip_calendario");

	$('.link_inativo').text('Página Inicial');

	if (getTipoUtilizador() == "aluno") {
		load_aluno();
	}

	if (getTipoUtilizador() == "docente") {
		load_docente();
	}

	if (getTipoUtilizador() == "coordenador") {
		load_coordenador();
	}
}

function log_out() {

	$('.log-in').show();

	if (getEscolaUtilizador() == "Estig") {
		$('#logo_essb, #logo_eseb, #logo_esab').show();
	}

	if (getEscolaUtilizador() == "Essb") {
		$('#logo_estig, #logo_eseb, #logo_esab').show();
	}

	if (getEscolaUtilizador() == "Eseb") {
		$('#logo_essb, #logo_estig, #logo_esab').show();
	}

	if (getEscolaUtilizador() == "Esab") {
		$('#logo_essb, #logo_estig, #logo_eseb').show();
	}

	//conteudo a esconder
	$('#logoutdiv, #cont_menu_direito, #titulo_menu_direito, #avisos, #calendario, #cabecalho_mensagens').hide();
	$('#opcoes_calendario_cabecalho, #cabecalho_dicas, #conteudo_opcoes_calendario, #dicas, #separador_opcoes').hide();
	$('#cabecalho_avaliacoes, #avaliacoes_direita, #anos_anteriores, #mudar_cargo, #ver_avaliacoes, #avaliacoes_none').hide();
	$("#aprovar_calendario_div, #definir_regras, #marcar_avaliacao_grande, #ver_inscritos_grande").hide();
	$('#regras_direita, #cabecalho_regras, #mensagem_login').hide();
	//coisas a limpar
	$("#nome_utilizador").html('');
	$('.link_inativo').text('');
	$('.link_ativo').text('');
	$("#disciplina_mostrar_select").find("option:gt(0)").remove();
	$("#curso_mostrar_select").find("option:gt(0)").remove();
	$("#curso_mostrar_select").find("option:gt(0)").remove();
	$("#select_avals").find("option:gt(0)").remove();
	$('#conteudo_esconder').hide();

	//$("#avaliacoes_direita").css('height', '50%');
	document.getElementById("avaliacoes_direita").style.height = "52%";

}

function verificar_docencia() {

	var docentes = getXMLDocentes();

	var cod_docente = getIdUtilizador();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	var n_disciplinas_total = 0;

	$('#assumir_cargo').html('<input type="button" value="Assumir Cargo de Docente" name="Assumir Cargo de Docente" id="mudar_cargo" />');

	$(docentes).find('docente').each(function() {

		var $docente = $(this);

		var cod_docente_xml = $docente.attr('cod_docente');

		if (cod_docente == cod_docente_xml) {

			$docente.find('disciplinas').each(function() {

				var $disciplinas_ano = $(this);

				var ano_letivo_xml = $disciplinas_ano.attr('ano_letivo');

				if (ano_letivo_atual == ano_letivo_xml) {

					$disciplinas_ano.find('curso').each(function() {

						var $curso = $(this);

						var n_disciplinas = $curso.find('disciplina');
						var quantidade = n_disciplinas.length;

						n_disciplinas_total += quantidade;

					});

				}

			});

		}

	});

	if (n_disciplinas_total == 0) {
		$('#assumir_cargo').html('');
	}

}

function load_coordenador() {

	$(".select_cursos").hide();

	verificar_docencia();

	load_centro_mensagens();

	var disciplinas = getXMLDisciplinas();

	var linha = "";
	linha += '<ul id="lista_links_coordenador">';
	linha += '<li>';
	linha += '<a id="opcao_coordenador_1" href="#" class="links_coordenador" title="Definir regras de marcação de avaliações">Definir regras de marcação de avaliações</a>';
	linha += '</li>';
	linha += '<li>';
	linha += '<a id="opcao_coordenador_2" href="#" class="links_coordenador" title="Contactar aluno">Contactar aluno</a>';
	linha += '</li>';
	linha += '<li>';
	linha += '<a id="opcao_coordenador_3" href="#" class="links_coordenador" title="Contactar docente">Contactar docente</a>';
	linha += '</li>';
	linha += '</ul>';

	$("#cont_menu_direito").html('');
	$("#cont_menu_direito").html(linha);
	$("#titulo_menu_direito").html('As minhas opções');

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	$(disciplinas).find("curso").each(function() {

		var $cursos = $(this);

		var cod_curso_xml = $cursos.attr("cod_curso");

		if (cod_curso_xml == getCodCurso()) {

			var duracao = $cursos.attr("duração");
			anos_a_mostrar_filtro_calendario(duracao);

			$cursos.find("disciplina").each(function() {

				var $disciplina_curso = $(this);

				var semestre = $disciplina_curso.find("semestre").text();
				var nome_disciplina = $disciplina_curso.find("descrição").text();
				var semestre_str = 'par';

				if (semestre == '1' || semestre == '3' || semestre == '5') {
					semestre_str = 'impar';
				}

				if (semestre_atual == semestre_str) {
					preencher_select_calendario(nome_disciplina);
				}
			});
		}
	});

	$("#avaliacoes_direita").html("");
	$("#avaliacoes_direita").html("Nenhum dia escolhido");

	var momentos_avaliacoes = getXMLAvaliacoes();
	var $avaliacoes_cursos = $(momentos_avaliacoes).find('curso');

	$avaliacoes_cursos.each(function() {
		var $curso = $(this);
		var curso_xml_avals = $curso.attr("cod_curso");

		if (getCodCurso() == curso_xml_avals) {

			$curso.find('ano_letivo').each(function() {
				var $ano = $(this);

				var ano_lectivo_xml = $ano.attr('ano_letivo');

				$ano.find('semestre').each(function() {
					var $semestre = $(this);

					var valor_semestre_xml_disciplinas = $semestre.attr("semestre");
					var estado_avals = $semestre.attr("estado");

					var semestre_xml_disciplinas = 'par';

					if (valor_semestre_xml_disciplinas == '1') {
						semestre_xml_disciplinas = 'impar';
					}

					if (ano_lectivo_xml == ano_letivo_atual && semestre_atual == semestre_xml_disciplinas && estado_avals == "pendente") {
						$("#aprovar_calendario_div").show();
						$("#confirmar_aprovacao").hide();

					}

				});

			});

		}
	});

}

function load_aluno() {

	$('#cont_menu_direito').show();
	$('#titulo_menu_direito').text('As minhas disciplinas');

	load_centro_mensagens();

	load_menu_esquerto_aluno();

	load_menu_avaliacoes_aluno();

}

function load_menu_esquerto_docente() {

	var cod_utilizador = getIdUtilizador();

	var disciplinas = getXMLDisciplinas();
	var docentes = getXMLDocentes();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	var comando = "";

	$(docentes).find("docente").each(function() {

		var $docente = $(this);

		if ($docente.attr("cod_docente") == cod_utilizador) {

			$docente.find("disciplinas").each(function() {

				var $disciplinas_docente = $(this);

				var ano_letivo = $disciplinas_docente.attr("ano_letivo");

				if (ano_letivo == ano_letivo_atual) {

					var id_div_ano = "div_ano_letivo_" + ano_letivo;

					var div_ano = "<div id='" + id_div_ano + "'>";

					comando += div_ano;

					comando += "<ul id='" + ano_letivo + "' >";

					$disciplinas_docente.find('curso').each(function() {

						var $curso_leciona = $(this);

						var escola = $curso_leciona.attr("escola");
						var nome_curso = $curso_leciona.attr("nome_curso");
						var cod_curso = $curso_leciona.attr("cod_curso");

						comando += "<li>" + escola + "</li>";

						comando += "<ul>";

						comando += "<li class='li_curso'>" + nome_curso + "</li>";

						carregar_select_cursos(nome_curso);

						$curso_leciona.find("disciplina").each(function() {

							var $disciplinas_lecionadas = $(this);

							$disciplinas_lecionadas.each(function() {

								var cod_disciplina = $(this).text();

								$(disciplinas).find("curso").each(function() {

									var $curso = $(this);

									var cod_curso_xml = $curso.attr("cod_curso");

									if (cod_curso_xml == cod_curso) {

										$curso.find("disciplina").each(function() {

											var $disciplina = $(this);

											var cod_disciplina_xml_disciplinas = $disciplina.attr("cod_disciplina");
											var valor_semestre_xml_disciplinas = $disciplina.find("semestre").text();
											var semestre_xml_disciplinas = 'par';

											if (valor_semestre_xml_disciplinas == '1' || valor_semestre_xml_disciplinas == '3' || valor_semestre_xml_disciplinas == '5') {
												semestre_xml_disciplinas = 'impar';
											}

											if (cod_disciplina_xml_disciplinas == cod_disciplina && semestre_atual == semestre_xml_disciplinas) {

												var nome_disciplina = $disciplina.find("descrição").text();

												//aproveitando novamente
												preencher_select_calendario(nome_disciplina);

												comando += "<ul>";

												comando += "<li class='li_disciplina'>" + "<span class='alternate'>[-]</span>" + "<a class='links_disciplinas' href='#' title='" + nome_disciplina + "'>" + nome_disciplina + "</a>";

												comando += "<ul class='sub-sub-menu'>";

												var atributo_for = "";
												atributo_for = cod_curso + "|" + cod_disciplina_xml_disciplinas + "|" + nome_disciplina;

												comando += "<li>" + "<a class='links_opcoes' href='#' for='" + atributo_for + "' title='Marcar Avaliação'>" + "Marcar Avaliação" + "</a>" + "</li>";
												comando += "<li>" + "<a class='links_opcoes' href='#' for='" + atributo_for + "' title='Editar Avaliação'>" + "Editar Avaliação" + "</a>" + "</li>";
												comando += "<li>" + "<a class='links_opcoes' href='#' for='" + atributo_for + "' title='Remover Avaliação'>" + "Remover Avaliação" + "</a>" + "</li>";
												comando += "<li>" + "<a class='links_opcoes' href='#' for='" + atributo_for + "' title='Ver Inscritos'>" + "Ver Inscritos" + "</a>" + "</li>";
												comando += "<li>" + "<a class='links_opcoes' href='#' for='" + atributo_for + "' title='Contactar Alunos'>" + "Contactar Alunos" + "</a>" + "</li>";

												comando += "</ul></li></ul>";

											}
										});
									}
								});
							});
						});
						//fim das disciplinas do curso
						comando += "</ul>";
					});

					comando += "</ul></div>";
				}
			});
		}
	});

	$("#cont_menu_direito").html(comando);

	$("li.li_disciplina").css('margin-left', '-45px');

}

function load_docente() {

	load_centro_mensagens();

	$("#titulo_menu_direito").html('As minhas disciplinas');
	$("#cont_menu_direito").html('');

	$(".select_cursos").show();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	var disciplinas = getXMLDisciplinas();
	$(disciplinas).find("curso").each(function() {

		var $cursos = $(this);

		var cod_curso_xml = $cursos.attr("cod_curso");

		if (cod_curso_xml == getCodCurso()) {

			var duracao = $cursos.attr("duração");
			anos_a_mostrar_filtro_calendario(duracao);
		}
	});

	$("#avaliacoes_direita").html("");
	$("#avaliacoes_direita").html("Nenhum dia escolhido");

	load_menu_esquerto_docente();

	load_menu_avaliacoes_docente();

}

function carregar_select_cursos(nome_curso) {
	var options = $('#curso_mostrar_select').prop('options')
	options[options.length] = new Option(nome_curso, nome_curso, false, false);
}

function load_centro_mensagens() {
	
	$('#botao_esconder_centro').attr("disabled", false);
	
	var cod_utilizador = getIdUtilizador();

	var xml_utilizadores = getXMLUtilizador();

	var quantidade_avisos = 0;

	var mensagens = new Array();

	$(xml_utilizadores).find("utilizador").each(function() {

		var $utilizador = $(this);

		var cod_utilizador_xml = $utilizador.attr("cod_utilizador");

		if (cod_utilizador == cod_utilizador_xml) {

			var $avisos = $utilizador.find("aviso");

			if ($avisos.length > 0) {
				$avisos.each(function() {

					var $aviso = $(this);

					var $visto = $aviso.attr('cod_visto');

					if ($visto == 0) {
						var arrayTemp = new Array(4);
						var id_mensagem = $aviso.attr('id_aviso');
						var data = $aviso.find("data").text();
						var assunto = $aviso.find("assunto").text();
						var mensgem = $aviso.find("mensagem").text();

						arrayTemp[0] = id_mensagem;
						arrayTemp[1] = data;
						arrayTemp[2] = assunto;
						arrayTemp[3] = mensgem;

						mensagens[quantidade_avisos] = arrayTemp;
						quantidade_avisos += 1;
					}
				});
			}
		}
	});

	setMensagens(mensagens);

	$('#quantidade_msg').text(quantidade_avisos);
	if (quantidade_avisos > 0) {
		$('#data_mensagem').text(mensagens[0][1]);
		$('#assunto_mensagem').text(mensagens[0][2]);
		$('#texto_mensagem').text(mensagens[0][3]);

		setIDMensagem(mensagens[0][0]);
		setNumeroMensagemMostrar(0);
	}

	if (quantidade_avisos == 0) {
		$('#botao_esconder_centro').attr("disabled", true);
	}

	if (quantidade_avisos == 1) {
		$('#botao_mensagem_anterior').attr("disabled", true);
		$('#botao_mensagem_seguinte').attr("disabled", true);
	}
}

function calcular_ano_actual() {

	var data = new Date();
	var ano_lectivo_actual = new Array(2);

	var dia_actual = data.getDate();
	var mes_actual = data.getMonth();
	var ano_actual = data.getFullYear();

	var calendario = getXMLCalendario();

	var data_actual = new Date(ano_actual, mes_actual, dia_actual);

	$(calendario).find('curso').each(function() {

		if ($(this).attr('cod_curso') == getCodCurso()) {
			var $ano_lectivo_xml = $(this).find('ano_lectivo');

			$ano_lectivo_xml.find('semestre').each(function() {

				var $semestre = $(this);

				var $inicio_semestre = $semestre.find('data_inicio_aulas');
				var $fim_semestre = $semestre.find('data_fim_recurso');

				var dia_inicio_xml = parseInt($inicio_semestre.find('dia').text());
				var mes_inicio_xml = parseInt($inicio_semestre.find('mês').text());
				var ano_inicio_xml = parseInt($inicio_semestre.find('ano').text());

				var dia_fim_xml = parseInt($fim_semestre.find('dia').text());
				var mes_fim_xml = parseInt($fim_semestre.find('mês').text());
				var ano_fim_xml = parseInt($fim_semestre.find('ano').text());

				var data_inicio = new Date(ano_inicio_xml, (mes_inicio_xml - 1), dia_inicio_xml);
				var data_fim = new Date(ano_fim_xml, (mes_fim_xml - 1), dia_fim_xml);

				if (data_actual >= data_inicio && data_actual <= data_fim) {
					ano_lectivo_actual[0] = $ano_lectivo_xml.attr('valor');
					ano_lectivo_actual[1] = $semestre.attr('valor');

					return false;
				}

			});

		}

	});

	return ano_lectivo_actual;
}

function anos_a_mostrar_filtro_calendario(duracao) {

	if (duracao == 1) {
		$('#check_segundo_label, #check_segundo').hide();
		$('#check_terceiro_label, #check_terceiro').hide();
		$('#check_quarto_label, #check_quarto').hide();
	}
	if (duracao == 2) {
		$('#check_terceiro_label, #check_terceiro').hide();
		$('#check_quarto_label, #check_quarto').hide();
	}
	if (duracao == 3) {
		$('#check_quarto_label, #check_quarto').hide();
	}
}

function preencher_select_calendario(nome_disciplina) {
	var options = $('#disciplina_mostrar_select').prop('options')
	options[options.length] = new Option(nome_disciplina, nome_disciplina, false, false);
}

function load_menu_avaliacoes_docente() {

	$("#select_avals").find("option:gt(0)").remove();

	var momentos_avaliacoes = getXMLAvaliacoes();
	var docentes = getXMLDocentes();
	var disciplinas = getXMLDisciplinas();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	$("#avaliacoes_direita").html("");

	var $avaliacoes_cursos = $(momentos_avaliacoes).find('curso');
	var $avaliacoes_curso = null;

	var curso_mostrar = getCodCursoEscolhido();

	if (curso_mostrar == null) {
		curso_mostrar = getCodCurso();
	}

	$avaliacoes_cursos.each(function() {
		var $curso = $(this);
		var curso_xml_avals = $curso.attr("cod_curso");

		if (curso_mostrar == curso_xml_avals) {

			$curso.find('ano_letivo').each(function() {
				var $ano = $(this);

				var ano_lectivo_xml = $ano.attr('ano_letivo');

				$ano.find('semestre').each(function() {
					var $semestre = $(this);

					var valor_semestre_xml_disciplinas = $semestre.attr("semestre");

					var semestre_xml_disciplinas = 'par';

					if (valor_semestre_xml_disciplinas == '1') {
						semestre_xml_disciplinas = 'impar';
					}

					if (ano_lectivo_xml == ano_letivo_atual && semestre_atual == semestre_xml_disciplinas) {
						$avaliacoes_curso = $(this);
					}

				});

			});

		}
	});

	if ($avaliacoes_curso != null) {

		$avaliacoes_curso.find('momento').each(function() {

			var $momento = $(this);

			var cod_momento = $momento.attr('cod');
			var cod_uc = $momento.find('uc').text();

			$(docentes).find("docente").each(function() {

				var $docente = $(this);

				var cod_utilizador = $docente.attr("cod_docente");

				if (cod_utilizador == getIdUtilizador()) {
					$docente.find("disciplinas").each(function() {

						var $disciplinas_leciona = $(this);

						var ano_letivo = $disciplinas_leciona.attr("ano_letivo");

						if (ano_letivo == ano_letivo_atual) {
							$disciplinas_leciona.find("disciplina").each(function() {

								var $disciplina_leciona = $(this);

								var cod_uc_leciona = $disciplina_leciona.text();

								if (cod_uc == cod_uc_leciona) {
									$(disciplinas).find('curso').each(function() {
										var $curso = $(this);

										var cod_curso_xml = $curso.attr('cod_curso');

										if (cod_curso_xml == curso_mostrar) {

											$curso.find("disciplina").each(function() {

												var $disciplina_curso = $(this);

												var cod_disciplina = $disciplina_curso.attr('cod_disciplina');

												if (cod_disciplina == cod_uc) {
													var $data_avaliacao = $momento.find("data");

													var dia_xml = $data_avaliacao.find("dia").text();
													var mes_xml = $data_avaliacao.find("mes").text();
													var ano_xml = $data_avaliacao.find("ano").text();

													var cod_aval = $momento.attr('cod');

													var tipo = $momento.find('tipo').text();
													var sigla = $disciplina_curso.attr("sigla");
													var data = dia_xml.concat("-").concat(mes_xml).concat("-").concat(ano_xml);
													var hora = $momento.find('horario').text();
													var percentagem = $momento.find("percentagem").text();

													var n_inscritos = $momento.find("inscrito").length;

													$("#avaliacoes_direita").append("<span class='span_aval'>" + tipo + " - " + sigla + "</span>");

													$("#avaliacoes_direita").append("<br />");

													$("#avaliacoes_direita").append(data + ", " + hora + " H");

													$("#avaliacoes_direita").append("<br />");

													$("#avaliacoes_direita").append("Peso: " + percentagem);

													$("#avaliacoes_direita").append("<br />");

													$("#avaliacoes_direita").append("Nº Inscritos: " + n_inscritos);

													$("#avaliacoes_direita").append("<br />");

													var attr_for = cod_aval + "|" + data + '|' + hora + '|' + sigla;

													var aval_select = data + " | " + hora + " H";

													var options = $('#select_avals').prop('options')
													options[options.length] = new Option(aval_select, aval_select, false, false);

													$("#avaliacoes_direita").append("<input type='button' class='botao_ver_inscritos' id='botao_ver_inscritos_" + cod_aval + "' value='Ver Inscritos' name='Ver Inscritos' for='" + attr_for + "'/>");
													$("#avaliacoes_direita").append("<input type='button' class='botao_alterar_avaliacao' id='botao_editar_aval_" + cod_aval + "' value='Editar' name='Editar Avaliação' for='" + attr_for + "'/>");

													$("#avaliacoes_direita").append("<p></p>");

												}
											});
										}
									});
								}
							});
						}
					});
				}
			});
		});
	} else {
		$("#avaliacoes_direita").html("Não existem avaliações marcadas");

	}
}

function load_menu_avaliacoes_aluno() {

	var momentos_avaliacoes = getXMLAvaliacoes();
	var inscricoes = getXMLInscricoes();
	var disciplinas = getXMLDisciplinas();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	$("#avaliacoes_direita").html("");

	var $avaliacoes_cursos = $(momentos_avaliacoes).find('curso');
	var $avaliacoes_curso = null;

	$avaliacoes_cursos.each(function() {
		var $curso = $(this);
		var curso_xml_avals = $curso.attr("cod_curso");

		if (getCodCurso() == curso_xml_avals) {

			$curso.find('ano_letivo').each(function() {
				var $ano = $(this);

				var ano_lectivo_xml = $ano.attr('ano_letivo');

				$ano.find('semestre').each(function() {
					var $semestre = $(this);

					var valor_semestre_xml_disciplinas = $semestre.attr("semestre");
					var estado_avals = $semestre.attr("estado");

					var semestre_xml_disciplinas = 'par';

					if (valor_semestre_xml_disciplinas == '1') {
						semestre_xml_disciplinas = 'impar';
					}

					if (ano_lectivo_xml == ano_letivo_atual && semestre_atual == semestre_xml_disciplinas && estado_avals == "aprovado") {
						$avaliacoes_curso = $(this);
					}

				});

			});

		}
	});

	if ($avaliacoes_curso != null) {

		$avaliacoes_curso.find('momento').each(function() {

			var $momento = $(this);
			var cod_momento = $momento.attr('cod');

			var cod_uc = $momento.find('uc').text();

			$(inscricoes).find("inscrição").each(function() {

				var $inscricao = $(this);

				var cod_utilizador = $inscricao.attr("cod_aluno");

				if (cod_utilizador == getIdUtilizador()) {
					$inscricao.find("ano_letivo").each(function() {

						var $ano_letivo = $(this);

						var ano_letivo = $ano_letivo.attr("ano");

						if (ano_letivo == ano_letivo_atual) {
							$ano_letivo.find("disciplina").each(function() {
								var $disciplina = $(this);

								var cod_uc_inscricao = $disciplina.attr("cod_disciplina");

								if (cod_uc == cod_uc_inscricao) {
									$(disciplinas).find('curso').each(function() {
										var $curso = $(this);

										var cod_curso_xml = $curso.attr('cod_curso');

										if (cod_curso_xml == getCodCurso()) {

											$curso.find("disciplina").each(function() {

												var $disciplina = $(this);

												var cod_disciplina = $disciplina.attr('cod_disciplina');

												if (cod_disciplina == cod_uc) {
													var $data_avaliacao = $momento.find("data");

													var dia_xml = $data_avaliacao.find("dia").text();
													var mes_xml = $data_avaliacao.find("mes").text();
													var ano_xml = $data_avaliacao.find("ano").text();

													var cod_aval = $momento.attr('cod');

													var tipo = $momento.find('tipo').text();
													var sigla = $disciplina.attr("sigla");
													var data = dia_xml.concat("-").concat(mes_xml).concat("-").concat(ano_xml);
													var hora = $momento.find('horario').text();
													var percentagem = $momento.find("percentagem").text();

													var estado_inscricao = "Não inscrito";

													$momento.find("inscrito").each(function() {
														var $inscrito = $(this);

														var cod_inscrito = $inscrito.attr('cod_aluno');

														if (cod_inscrito == getIdUtilizador()) {
															estado_inscricao = "Inscrito";
															return false;
														}

													});

													$("#avaliacoes_direita").append("<span class='span_aval'>" + tipo + " - " + sigla + "</span>");

													$("#avaliacoes_direita").append("<br />");

													$("#avaliacoes_direita").append(data + ", " + hora + " H");

													$("#avaliacoes_direita").append("<br />");

													$("#avaliacoes_direita").append("Peso: " + percentagem);

													$("#avaliacoes_direita").append("<br />");

													$("#avaliacoes_direita").append("Estado: " + estado_inscricao);

													if (estado_inscricao == 'Não inscrito') {
														$("#avaliacoes_direita").append("<input type='button' class='botao_inscrever_avaliacao' id='botao_inscrever_" + cod_aval + "' value='Inscrever' name='Inscrever' for='" + cod_aval + "'/>");
													}

													$("#avaliacoes_direita").append("<p></p>");

												}
											});
										}
									});
								}
							});
						}
					});
				}
			});
		});
	} else {
		$("#avaliacoes_direita").html("Não existem avaliações ou o calendário não se encontra aprovado");
	}
}

function inscrever_aval_botao(cod_aval) {
	var momentos_avaliacoes = getXMLAvaliacoes();

	var cod_aluno = getIdUtilizador();
	var id_inscrito = 0;

	var lista_momentos = momentos_avaliacoes.getElementsByTagName("momento");

	for (var i = 0, j = lista_momentos.length; i < j; i++) {
		var cod_momento = lista_momentos[i].getAttribute('cod');

		if (cod_aval == cod_momento) {

			var inscritos = lista_momentos[i].getElementsByTagName('inscrito');

			if (inscritos.length > 0) {
				for (var i = 0, j = inscritos.length; i < j; i++) {
					id_inscrito = inscritos[i].getAttribute('id');
				}
			}

			inscrito = momentos_avaliacoes.createElement("inscrito");

			inscrito.setAttribute("id", id_inscrito);
			inscrito.setAttribute("cod_aluno", cod_aluno);

			lista_momentos[i].getElementsByTagName('inscritos')[0].appendChild(inscrito);
		}

	}

	load_menu_avaliacoes_aluno();

}

function anular_inscrever_aval_botao(cod_aval) {
	var momentos_avaliacoes = getXMLAvaliacoes();

	var cod_aluno = getIdUtilizador();
	var id_inscrito = 0;

	var lista_momentos = momentos_avaliacoes.getElementsByTagName("momento");

	for (var i = 0, j = lista_momentos.length; i < j; i++) {
		var cod_momento = lista_momentos[i].getAttribute('cod');

		if (cod_aval == cod_momento) {

			var inscritos = lista_momentos[i].getElementsByTagName('inscrito');

			for (var k = 0, j = inscritos.length; k < j; k++) {

				var inscricao = inscritos[k];

				var aluno_inscrito = inscricao.getAttribute('cod_aluno');

				if (aluno_inscrito == cod_aluno) {

					inscritos[0].parentNode.removeChild(inscricao);

				}
			}
		}

	}

	load_menu_avaliacoes_aluno();

}

function load_menu_esquerto_aluno() {

	var cod_utilizador = getIdUtilizador();
	var escola = getEscolaUtilizador();
	var cod_curso = getCodCurso();

	var disciplinas = getXMLDisciplinas();
	var disciplinas_inscrito = getXMLInscricoes();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	var comando = "";

	$(disciplinas_inscrito).find("inscrição").each(function() {

		var $inscricao = $(this);

		if ($inscricao.attr("cod_aluno") == cod_utilizador) {

			var $ano_lectivo_xml = $(this);

			$ano_lectivo_xml.find("ano_letivo").each(function() {

				var $ano_letivo = $(this);

				var ano_letivo = $ano_letivo.attr("ano");

				if (ano_letivo == ano_letivo_atual) {

					var id_div_ano = "div_ano_letivo_" + ano_letivo;

					var div_ano = "<div id='" + id_div_ano + "'>";

					var fim_div = "</div>";

					comando += div_ano;

					comando += "<ul id='" + ano_letivo + "' >";

					comando += "<li>" + ano_letivo + "</li>";

					$ano_letivo.find("disciplina").each(function() {

						var $disciplina_inscrito = $(this);

						var cod_disciplina_xml_inscritos = $disciplina_inscrito.attr("cod_disciplina");

						$(disciplinas).find("curso").each(function() {

							var $cursos = $(this);

							var cod_curso_xml = $cursos.attr("cod_curso");

							if (cod_curso_xml == cod_curso) {

								//aproveitando o ciclo para outras coisas que usam o mesmo loop
								var duracao = $cursos.attr("duração");
								anos_a_mostrar_filtro_calendario(duracao);

								$cursos.find("disciplina").each(function() {

									var $disciplina_curso = $(this);

									var cod_disciplina_xml_disciplinas = $disciplina_curso.attr("cod_disciplina");
									var valor_semestre_xml_disciplinas = $disciplina_curso.find("semestre").text();
									var semestre_xml_disciplinas = 'par';

									if (valor_semestre_xml_disciplinas == '1' || valor_semestre_xml_disciplinas == '3' || valor_semestre_xml_disciplinas == '5')
										semestre_xml_disciplinas = 'impar';

									if (cod_disciplina_xml_disciplinas == cod_disciplina_xml_inscritos && semestre_atual == semestre_xml_disciplinas) {

										var nome_disciplina = $disciplina_curso.find("descrição").text();

										//aproveitando novamente
										preencher_select_calendario(nome_disciplina);

										comando += "<ul>";

										comando += "<li class='li_disciplina'>" + "<span class='alternate'>[-]</span>" + "<a class='links_disciplinas' href='#' title='" + nome_disciplina + "'>" + nome_disciplina + "</a>";

										comando += "<ul class='sub-sub-menu'>";

										var comando_for = nome_disciplina + "|" + cod_disciplina_xml_disciplinas;

										comando += "<li>" + "<a class='links_opcoes' href='#' for='" + comando_for + "' title='Avaliações'>" + "Avaliações" + "</a>" + "</li>";
										comando += "<li>" + "<a class='links_opcoes' href='#' for='" + comando_for + "' title='Horario'>" + "Horario" + "</a>" + "</li>";
										comando += "<li>" + "<a class='links_opcoes' href='#' for='" + comando_for + "' title='Contactar Docente'>" + "Contactar Docente" + "</a>" + "</li>";

										comando += "</ul></li></ul>";
									}
								});
							}
						});
					});

					comando += "</ul>";
					comando += fim_div;

				}

			});

		}

	});

	$("#cont_menu_direito").html(comando);

}

function actualizar_tabela_avaliacoes(cod_disciplina) {
	$('#table_avaliacoes').find("tbody").empty();

	var momentos_avaliacoes = getXMLAvaliacoes();

	var $avaliacoes_cursos = $(momentos_avaliacoes).find('curso');
	var $avaliacoes_curso = null;

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	$avaliacoes_cursos.each(function() {
		var $curso = $(this);
		var curso_xml_avals = $curso.attr("cod_curso");

		if (getCodCurso() == curso_xml_avals) {

			$curso.find('ano_letivo').each(function() {
				var $ano = $(this);

				var ano_lectivo_xml = $ano.attr('ano_letivo');

				$ano.find('semestre').each(function() {
					var $semestre = $(this);

					var valor_semestre_xml_disciplinas = $semestre.attr("semestre");
					var estado_avals = $semestre.attr("estado");

					var semestre_xml_disciplinas = 'par';

					if (valor_semestre_xml_disciplinas == '1') {
						semestre_xml_disciplinas = 'impar';
					}

					if (ano_lectivo_xml == ano_letivo_atual && semestre_atual == semestre_xml_disciplinas && estado_avals == "aprovado") {
						$avaliacoes_curso = $(this);
					}

				});

			});

		}
	});

	if ($avaliacoes_curso != null) {

		$(momentos_avaliacoes).find('momento').each(function() {

			var $momento = $(this);
			var cod_momento = $momento.attr('cod');

			var cod_uc = $momento.find('uc').text();

			var quantidade = 0;

			if (cod_disciplina == cod_uc) {

				var percentagem = $momento.find('percentagem').text();

				var tipo = $momento.find('tipo').text();

				var data_xml = $momento.find('data');
				var dia_xml = data_xml.find('dia').text();
				var mes_xml = data_xml.find('mes').text();
				var ano_xml = data_xml.find('ano').text();
				var data = dia_xml + "-" + mes_xml + "-" + ano_xml;

				var hora = $momento.find('horario').text();

				var sala = $momento.find('sala').text();

				var obs = $momento.find('observações').text();

				var inscritos = $momento.find('inscrito');

				var estado = "Não inscrito";

				inscritos.each(function() {
					if (getIdUtilizador() == $(this).attr('cod_aluno')) {
						estado = "Inscrito";
					}
				});

				var string_botao = '';

				if (estado == 'Inscrito') {
					string_botao = 'Anular Inscrição';
				} else {
					string_botao = 'Inscrever';
				}

				var linha = "<tr>";
				linha += "<td headers='col_peso'>" + percentagem + "</td>";
				linha += "<td headers='col_tipo'>" + tipo + "</td>";
				linha += "<td headers='col_data'>" + data + "</td>";
				linha += "<td headers='col_hora'>" + hora + "</td>";
				linha += "<td headers='col_sala'>" + sala + "</td>";
				linha += "<td headers='col_obs'>" + obs + "</td>";
				linha += "<td headers='col_estado'>" + estado + "</td>";
				linha += "<td headers='col_inscrever'>";
				linha += "<input type='button' class='botao_alterar_estado_avaliacao' value='";
				linha += string_botao + "' name='" + string_botao + "' id='botao_alterar_estado_" + quantidade + "' for='" + cod_momento + "'/>";
				linha += "</td>";
				linha += "</tr>";

				$('#table_avaliacoes').find("tbody").append(linha);

				quantidade++;
			}

		});
	} else {
		$('#avaliacoes_none').show();
		$('#tabela_avaliacoes').hide();
	}

}

function aprovar_calendario() {
	var momentos_avaliacoes = getXMLAvaliacoes();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	var avaliacoes_cursos = momentos_avaliacoes.getElementsByTagName('curso');

	for (var i = 0, j = avaliacoes_cursos.length; i < j; i++) {
		var curso = avaliacoes_cursos[i];
		var curso_xml_avals = curso.getAttribute("cod_curso");

		if (getCodCurso() == curso_xml_avals) {

			var anos_letivos = curso.getElementsByTagName('ano_letivo');

			for (var k = 0, j = anos_letivos.length; k < j; k++) {
				var ano_letivo = anos_letivos[k];

				var valor_ano = ano_letivo.getAttribute("ano_letivo");

				if (valor_ano == ano_letivo_atual) {
					var semestres = ano_letivo.getElementsByTagName('semestre');

					for (var o = 0, j = semestres.length; o < j; o++) {
						var semestre = semestres[o];

						var valor_semestre = semestre.getAttribute("semestre");
						var estado_avals = semestre.getAttribute("estado");
						var semestre_str = 'par';

						if (valor_semestre == '1') {
							semestre_str = 'impar';
						}

						if (semestre_atual == semestre_str) {
							semestre.setAttribute("estado", "aprovado");
							$("#aprovar_calendario_div").hide();
						}
					}
				}
			}
		}
	}
}

function preencher_regras_direita() {

	$("#botao_definir_regras").attr("disabled", true);

	$('#regras_direita').show();
	$('#regras_direita').html('');
	$('#cabecalho_regras').show();
	$('#opcoes_calendario_cabecalho, #conteudo_opcoes_calendario').hide();
	$('#dicas, #cabecalho_dicas').hide();
	$('#avaliacoes_direita, #cabecalho_avaliacoes').hide();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	var regras_definidas = getXMLRegras();

	var linha = "";

	$(regras_definidas).find("curso").each(function() {

		var $curso = $(this);

		var cod_curso_xml = $curso.attr('cod_curso');

		if (cod_curso_xml == getCodCurso()) {

			var $anos_letivos = $curso.find("ano_letivo");

			$anos_letivos.each(function() {

				var $ano_letivo = $(this);

				var ano_letivo_xml = $ano_letivo.attr('ano');

				if (ano_letivo_atual == ano_letivo_xml) {
					var $semestres = $ano_letivo.find('semestre');

					$semestres.each(function() {

						var $semestre = $(this);

						var semestre_xml = $semestre.attr("valor");

						var semestre_str = 'par';

						if (semestre_xml == '1') {
							semestre_str = 'impar';
						}

						if (semestre_str == semestre_atual) {
							var $regras = $semestre.find('regra');

							$regras.each(function() {

								var $regra = $(this);

								var descricao_regra = $regra.attr("descrição");
								var epoca = $regra.find('epoca').text();

								var $data = $regra.find('data_limite');
								var dia_xml = $data.find("dia").text();
								var mes_xml = $data.find("mes").text();
								var ano_xml = $data.find("ano").text();
								var data = dia_xml.concat("-").concat(mes_xml).concat("-").concat(ano_xml);

								var ano_curricular = $regra.find('ano_curricular').text();
								var avaliacoes_dia = $regra.find('avaliações_dia').text();
								var somatorio_percentagens_dia = $regra.find('somatorio_percentagens_dia').text();
								var dias_entre_avaliacoes = $regra.find('dias_entre_avaliações').text();

								linha += "<div class='descricao_regra'>";
								linha += "<span class='nome_opcao'>";
								linha += "Descrição:";
								linha += "</span>";
								linha += "<span class='opcao_regra'>";
								linha += descricao_regra;
								linha += "</span>";
								linha += "<br />";
								linha += "</div>";

								linha += "<div class='duo_regras'>";
								linha += "<span class='nome_opcao'>";
								linha += "Época:";
								linha += "</span>";
								linha += "<span class='opcao_regra'>";
								linha += epoca;
								linha += "</span>";
								linha += "<br />";
								linha += "</div>";

								linha += "<div class='duo_regras'>";
								linha += "<span class='nome_opcao'>";
								linha += "Data limite marcação de avaliações:";
								linha += "</span>";
								linha += "<span class='opcao_regra'>";
								linha += data;
								linha += "</span>";
								linha += "<br />";
								linha += "</div>";

								if (ano_curricular != '') {
									linha += "<div class='duo_regras'>";
									linha += "<span class='nome_opcao'>";
									linha += "Ano Curricular:";
									linha += "</span>";
									linha += "<span class='opcao_regra'>";
									linha += ano_curricular;
									linha += "º</span>";
									linha += "<br />";
									linha += "</div>";
								}

								if (avaliacoes_dia != '') {
									linha += "<div class='duo_regras'>";
									linha += "<span class='nome_opcao'>";
									linha += "Nº de avaliações por dia:";
									linha += "</span>";
									linha += "<span class='opcao_regra'>";
									linha += avaliacoes_dia;
									linha += "</span>";
									linha += "<br />";
									linha += "</div>";
								}

								if (somatorio_percentagens_dia != '') {
									linha += "<div class='duo_regras'>";
									linha += "<span class='nome_opcao'>";
									linha += "Somatório de percentagens por dia:";
									linha += "</span>";
									linha += "<span class='opcao_regra'>";
									linha += somatorio_percentagens_dia;
									linha += "</span>";
									linha += "<br />";
									linha += "</div>";
								}

								if (dias_entre_avaliacoes != '') {
									linha += "<div class='duo_regras'>";
									linha += "<span class='nome_opcao'>";
									linha += "Dias entre avaliações:";
									linha += "</span>";
									linha += "<span class='opcao_regra'>";
									linha += dias_entre_avaliacoes;
									linha += "</span>";
									linha += "<br />";
									linha += "</div>";
								}

							});
						}

					});
				}

			});
		}

	});

	$('#regras_direita').append(linha);
}

function marcar_aval() {

	var n_momento = 0;

	var data_input = $("#datepicker").val();
	var array_data = data_input.split('-');
	var dia_input = parseInt(array_data[0]);
	var mes_input = parseInt(array_data[1]);
	var ano_input = array_data[2];

	var hora = "";
	var opcao_hora = $("#select_hora").prop("selectedIndex");
	if (opcao_hora != 0) {
		hora = $("#select_hora option:selected").text();
	}

	var peso = "";
	var opcao_peso = $("#select_peso").prop("selectedIndex");
	if (opcao_peso != 0) {
		peso = $("#select_peso option:selected").text();
	}

	var tipo = "";
	var opcao_tipo = $("#select_tipo").prop("selectedIndex");
	if (opcao_tipo != 0) {
		tipo = $("#select_tipo option:selected").text();
	}

	var sala = "";
	sala = $("#input_text_sala").val();

	var observacoes = "";
	observacoes = $("#input_text_obs").val();

	var cod_curso_escolhido = getCodCursoEscolhido();
	var cod_disciplina_escolhida = getCodDisciplinaEscolhida();
	var nome_docente = getNomeUtilizador();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];
	var semestre_para_xml = "1";

	if (semestre_atual == 'par') {
		semestre_para_xml = "2";
	}

	var momentos_aval = getXMLAvaliacoes();

	var cursos = momentos_aval.getElementsByTagName('curso');

	var curso_existe = false;

	for (var i = 0, j = cursos.length; i < j; i++) {

		var curso = cursos[i];
		var cod_curso_xml = curso.getAttribute("cod_curso");

		if (cod_curso_escolhido == cod_curso_xml) {
			curso_existe = true;
		}
	}
	if (curso_existe == false) {

		n_momento += 1;

		var no_curso = momentos_aval.createElement("curso");
		no_curso.setAttribute("cod_curso", cod_curso_escolhido);

		var no_ano = momentos_aval.createElement("ano_letivo");
		no_ano.setAttribute("ano_letivo", ano_letivo_atual);

		var no_semestre = momentos_aval.createElement("semestre");
		no_semestre.setAttribute("semestre", semestre_para_xml);
		no_semestre.setAttribute("estado", "pendente");

		var no_momento = momentos_aval.createElement("momento");
		no_momento.setAttribute("cod", n_momento);

		var no_uc = momentos_aval.createElement("uc");
		var no_text_uc = momentos_aval.createTextNode(cod_disciplina_escolhida);
		no_uc.appendChild(no_text_uc);
		no_momento.appendChild(no_uc);

		var no_docente = momentos_aval.createElement("docente");
		var no_text_docente = momentos_aval.createTextNode(nome_docente);
		no_docente.appendChild(no_text_docente);
		no_momento.appendChild(no_docente);

		var no_tipo = momentos_aval.createElement("tipo");
		var no_text_tipo = momentos_aval.createTextNode(tipo);
		no_tipo.appendChild(no_text_tipo);
		no_momento.appendChild(no_tipo);

		var no_data_nova = momentos_aval.createElement("data");

		var no_dia_nova = momentos_aval.createElement("dia");
		var dia_nova_valor = momentos_aval.createTextNode(dia_input);
		no_dia_nova.appendChild(dia_nova_valor);

		var no_mes_nova = momentos_aval.createElement("mes");
		var mes_nova_valor = momentos_aval.createTextNode(mes_input);
		no_mes_nova.appendChild(mes_nova_valor);

		var no_ano_nova = momentos_aval.createElement("ano");
		var ano_nova_valor = momentos_aval.createTextNode(ano_input);
		no_ano_nova.appendChild(ano_nova_valor);

		no_data_nova.appendChild(no_dia_nova);
		no_data_nova.appendChild(no_mes_nova);
		no_data_nova.appendChild(no_ano_nova);

		no_momento.appendChild(no_data_nova);

		var no_horario = momentos_aval.createElement("horario");
		var no_text_horario = momentos_aval.createTextNode(hora);
		no_horario.appendChild(no_text_horario);
		no_momento.appendChild(no_horario);

		var no_sala = momentos_aval.createElement("sala");
		var no_text_sala = momentos_aval.createTextNode(sala);
		no_sala.appendChild(no_text_sala);
		no_momento.appendChild(no_sala);

		var no_percentagem = momentos_aval.createElement("percentagem");
		var no_text_percentagem = momentos_aval.createTextNode(peso);
		no_percentagem.appendChild(no_text_percentagem);
		no_momento.appendChild(no_percentagem);

		var no_observacoes = momentos_aval.createElement("observações");
		var no_text_observacoes = momentos_aval.createTextNode(observacoes);
		no_observacoes.appendChild(no_text_observacoes);
		no_momento.appendChild(no_observacoes);

		var no_inscritos = momentos_aval.createElement("inscritos");
		no_momento.appendChild(no_inscritos);

		no_semestre.appendChild(no_momento);

		no_ano.appendChild(no_semestre);

		no_curso.appendChild(no_ano);

		momentos_aval.getElementsByTagName('momentos_avaliação')[0].appendChild(no_curso);

	} else {

		var anos_letivos = curso.getElementsByTagName('ano_letivo');
		var ano_existe = false;

		for (var o = 0, j = anos_letivos.length; o < j; o++) {

			var ano_letivo = anos_letivos[o];
			var ano_letivo_xml = ano_letivo.getAttribute("ano_letivo");

			if (ano_letivo_atual == ano_letivo_xml) {
				ano_existe = true;
			}
		}

		if (ano_existe == false) {

			n_momento += 1;

			var no_ano = momentos_aval.createElement("ano_letivo");
			no_ano.setAttribute("ano_letivo", ano_letivo_atual);

			var no_semestre = momentos_aval.createElement("semestre");
			no_semestre.setAttribute("semestre", semestre_para_xml);
			no_semestre.setAttribute("estado", "pendente");

			var no_momento = momentos_aval.createElement("momento");
			no_momento.setAttribute("cod", n_momento);

			var no_uc = momentos_aval.createElement("uc");
			var no_text_uc = momentos_aval.createTextNode(cod_disciplina_escolhida);
			no_uc.appendChild(no_text_uc);
			no_momento.appendChild(no_uc);

			var no_docente = momentos_aval.createElement("docente");
			var no_text_docente = momentos_aval.createTextNode(nome_docente);
			no_docente.appendChild(no_text_docente);
			no_momento.appendChild(no_docente);

			var no_tipo = momentos_aval.createElement("tipo");
			var no_text_tipo = momentos_aval.createTextNode(tipo);
			no_tipo.appendChild(no_text_tipo);
			no_momento.appendChild(no_tipo);

			var no_data_nova = momentos_aval.createElement("data");

			var no_dia_nova = momentos_aval.createElement("dia");
			var dia_nova_valor = momentos_aval.createTextNode(dia_input);
			no_dia_nova.appendChild(dia_nova_valor);

			var no_mes_nova = momentos_aval.createElement("mes");
			var mes_nova_valor = momentos_aval.createTextNode(mes_input);
			no_mes_nova.appendChild(mes_nova_valor);

			var no_ano_nova = momentos_aval.createElement("ano");
			var ano_nova_valor = momentos_aval.createTextNode(ano_input);
			no_ano_nova.appendChild(ano_nova_valor);

			no_data_nova.appendChild(no_dia_nova);
			no_data_nova.appendChild(no_mes_nova);
			no_data_nova.appendChild(no_ano_nova);

			no_momento.appendChild(no_data_nova);

			var no_horario = momentos_aval.createElement("horario");
			var no_text_horario = momentos_aval.createTextNode(hora);
			no_horario.appendChild(no_text_horario);
			no_momento.appendChild(no_horario);

			var no_sala = momentos_aval.createElement("sala");
			var no_text_sala = momentos_aval.createTextNode(sala);
			no_sala.appendChild(no_text_sala);
			no_momento.appendChild(no_sala);

			var no_percentagem = momentos_aval.createElement("percentagem");
			var no_text_percentagem = momentos_aval.createTextNode(peso);
			no_percentagem.appendChild(no_text_percentagem);
			no_momento.appendChild(no_percentagem);

			var no_observacoes = momentos_aval.createElement("observações");
			var no_text_observacoes = momentos_aval.createTextNode(observacoes);
			no_observacoes.appendChild(no_text_observacoes);
			no_momento.appendChild(no_observacoes);

			var no_inscritos = momentos_aval.createElement("inscritos");
			no_momento.appendChild(no_inscritos);

			no_semestre.appendChild(no_momento);

			no_ano.appendChild(no_semestre);

			curso.appendChild(no_ano);

		} else {

			var semestres = ano_letivo.getElementsByTagName('semestre');

			var semestre_existe = false;

			for (var p = 0, j = semestres.length; p < j; p++) {

				var semestre = semestres[p];
				var semestre_xml = semestre.getAttribute("semestre");

				if (semestre_xml == semestre_para_xml) {
					semestre_existe = true;
				}
			}

			if (semestre_existe == false) {

				n_momento += 1;

				var no_semestre = momentos_aval.createElement("semestre");
				no_semestre.setAttribute("semestre", semestre_para_xml);
				no_semestre.setAttribute("estado", "pendente");

				var no_momento = momentos_aval.createElement("momento");
				no_momento.setAttribute("cod", n_momento);

				var no_uc = momentos_aval.createElement("uc");
				var no_text_uc = momentos_aval.createTextNode(cod_disciplina_escolhida);
				no_uc.appendChild(no_text_uc);
				no_momento.appendChild(no_uc);

				var no_docente = momentos_aval.createElement("docente");
				var no_text_docente = momentos_aval.createTextNode(nome_docente);
				no_docente.appendChild(no_text_docente);
				no_momento.appendChild(no_docente);

				var no_tipo = momentos_aval.createElement("tipo");
				var no_text_tipo = momentos_aval.createTextNode(tipo);
				no_tipo.appendChild(no_text_tipo);
				no_momento.appendChild(no_tipo);

				var no_data_nova = momentos_aval.createElement("data");

				var no_dia_nova = momentos_aval.createElement("dia");
				var dia_nova_valor = momentos_aval.createTextNode(dia_input);
				no_dia_nova.appendChild(dia_nova_valor);

				var no_mes_nova = momentos_aval.createElement("mes");
				var mes_nova_valor = momentos_aval.createTextNode(mes_input);
				no_mes_nova.appendChild(mes_nova_valor);

				var no_ano_nova = momentos_aval.createElement("ano");
				var ano_nova_valor = momentos_aval.createTextNode(ano_input);
				no_ano_nova.appendChild(ano_nova_valor);

				no_data_nova.appendChild(no_dia_nova);
				no_data_nova.appendChild(no_mes_nova);
				no_data_nova.appendChild(no_ano_nova);

				no_momento.appendChild(no_data_nova);

				var no_horario = momentos_aval.createElement("horario");
				var no_text_horario = momentos_aval.createTextNode(hora);
				no_horario.appendChild(no_text_horario);
				no_momento.appendChild(no_horario);

				var no_sala = momentos_aval.createElement("sala");
				var no_text_sala = momentos_aval.createTextNode(sala);
				no_sala.appendChild(no_text_sala);
				no_momento.appendChild(no_sala);

				var no_percentagem = momentos_aval.createElement("percentagem");
				var no_text_percentagem = momentos_aval.createTextNode(peso);
				no_percentagem.appendChild(no_text_percentagem);
				no_momento.appendChild(no_percentagem);

				var no_observacoes = momentos_aval.createElement("observações");
				var no_text_observacoes = momentos_aval.createTextNode(observacoes);
				no_observacoes.appendChild(no_text_observacoes);
				no_momento.appendChild(no_observacoes);

				var no_inscritos = momentos_aval.createElement("inscritos");
				no_momento.appendChild(no_inscritos);

				no_semestre.appendChild(no_momento);

				ano_letivo.appendChild(no_semestre);

			} else {

				var momentos = semestre.getElementsByTagName('momento');

				n_momento = momentos.length;
				n_momento += 1;

				var no_momento = momentos_aval.createElement("momento");
				no_momento.setAttribute("cod", n_momento);

				var no_uc = momentos_aval.createElement("uc");
				var no_text_uc = momentos_aval.createTextNode(cod_disciplina_escolhida);
				no_uc.appendChild(no_text_uc);
				no_momento.appendChild(no_uc);

				var no_docente = momentos_aval.createElement("docente");
				var no_text_docente = momentos_aval.createTextNode(nome_docente);
				no_docente.appendChild(no_text_docente);
				no_momento.appendChild(no_docente);

				var no_tipo = momentos_aval.createElement("tipo");
				var no_text_tipo = momentos_aval.createTextNode(tipo);
				no_tipo.appendChild(no_text_tipo);
				no_momento.appendChild(no_tipo);

				var no_data_nova = momentos_aval.createElement("data");

				var no_dia_nova = momentos_aval.createElement("dia");
				var dia_nova_valor = momentos_aval.createTextNode(dia_input);
				no_dia_nova.appendChild(dia_nova_valor);

				var no_mes_nova = momentos_aval.createElement("mes");
				var mes_nova_valor = momentos_aval.createTextNode(mes_input);
				no_mes_nova.appendChild(mes_nova_valor);

				var no_ano_nova = momentos_aval.createElement("ano");
				var ano_nova_valor = momentos_aval.createTextNode(ano_input);
				no_ano_nova.appendChild(ano_nova_valor);

				no_data_nova.appendChild(no_dia_nova);
				no_data_nova.appendChild(no_mes_nova);
				no_data_nova.appendChild(no_ano_nova);

				no_momento.appendChild(no_data_nova);

				var no_horario = momentos_aval.createElement("horario");
				var no_text_horario = momentos_aval.createTextNode(hora);
				no_horario.appendChild(no_text_horario);
				no_momento.appendChild(no_horario);

				var no_sala = momentos_aval.createElement("sala");
				var no_text_sala = momentos_aval.createTextNode(sala);
				no_sala.appendChild(no_text_sala);
				no_momento.appendChild(no_sala);

				var no_percentagem = momentos_aval.createElement("percentagem");
				var no_text_percentagem = momentos_aval.createTextNode(peso);
				no_percentagem.appendChild(no_text_percentagem);
				no_momento.appendChild(no_percentagem);

				var no_observacoes = momentos_aval.createElement("observações");
				var no_text_observacoes = momentos_aval.createTextNode(observacoes);
				no_observacoes.appendChild(no_text_observacoes);
				no_momento.appendChild(no_observacoes);

				var no_inscritos = momentos_aval.createElement("inscritos");
				no_momento.appendChild(no_inscritos);

				semestre.appendChild(no_momento);

			}

		}

	}

}

function ver_inscritos(cod_aval) {

	var disciplina = getCodDisciplinaEscolhida();
	var curso_escolhido = getCodCursoEscolhido();

	if (curso_escolhido == null) {
		curso_escolhido = getCodCurso();
	}

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];
	var semestre_para_xml = "1";

	if (semestre_atual == 'par') {
		semestre_para_xml = "2";
	}

	var momentos_avaliacoes = getXMLAvaliacoes();
	var $avaliacoes_cursos = $(momentos_avaliacoes).find('curso');
	var $avaliacoes_curso = null;

	var alunos = getXMLUtilizador();

	$avaliacoes_cursos.each(function() {

		var $curso = $(this);
		var curso_xml_avals = $curso.attr("cod_curso");

		if (curso_escolhido == curso_xml_avals) {

			$curso.find('ano_letivo').each(function() {

				var $ano = $(this);

				var ano_lectivo_xml = $ano.attr('ano_letivo');

				$ano.find('semestre').each(function() {

					var $semestre = $(this);

					var valor_semestre_xml_disciplinas = $semestre.attr("semestre");
					var estado_avals = $semestre.attr("estado");

					var semestre_xml_disciplinas = 'par';

					if (valor_semestre_xml_disciplinas == '1') {
						semestre_xml_disciplinas = 'impar';
					}

					if (ano_lectivo_xml == ano_letivo_atual && semestre_atual == semestre_xml_disciplinas && estado_avals == "aprovado") {
						$avaliacoes_curso = $(this);
					}

				});

			});

		}
	});

	var quantidade = 0;

	if ($avaliacoes_curso != null) {

		$avaliacoes_curso.find('momento').each(function() {

			var $momento = $(this);
			var cod_momento = $momento.attr('cod');

			if (cod_momento == cod_aval) {

				var $inscritos = $momento.find('inscrito');

				var n_inscritos = $inscritos.length;

				if (n_inscritos > 0) {

					$inscritos.each(function() {

						var cod_aluno_inscrito = $(this).attr("cod_aluno");
						var nome = "";

						$(alunos).find("utilizador").each(function() {

							var cod_aluno_utilizadores = $(this).attr("cod_utilizador");

							if (cod_aluno_utilizadores == cod_aluno_inscrito) {

								nome = $(this).find("nome").text();
								quantidade++;
							}

						});

						var linha = "<tr>";
						linha += "<td headers='col_numero'>" + quantidade + "</td>";
						linha += "<td headers='col_numero_aluno'>" + cod_aluno_inscrito + "</td>";
						linha += "<td headers='col_nome'>" + nome + "</td>";
						linha += "</tr>";

						$('#table_inscritos').find("tbody").append(linha);

					});
				}
			}
		});
	}

	if (quantidade == 0) {
		$("#tabela_inscritos_div").hide();
		$("#inscritos_none").show();
	} else {
		$("#tabela_inscritos_div").show();
		$("#inscritos_none").hide();
	}

}

function definir_regra() {

	var status = false;

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];
	var semestre_para_xml = "1";

	if (semestre_atual == 'par') {
		semestre_para_xml = "2";
	}

	var descricao_regra = $("#descricao_regra").val();
	var epoca = $("#select_epoca option:selected").text();

	var data_input = $("#datepicker_regras").val();
	var array_data = data_input.split('-');
	var dia_input = array_data[0];
	var mes_input = array_data[1];
	var ano_input = array_data[2];

	var ano_curricular = $("#select_ano option:selected").text();

	var avaliacoes_dia = "";
	var somatorio_percentagens_dia = "";
	var dias_entre_avaliacoes = "";

	var opcao_avals_dia = $("#select_avals_dia").prop("selectedIndex");
	if (opcao_avals_dia != 0) {
		avaliacoes_dia = $("#select_avals_dia option:selected").text();
	}

	var opcao_somatorio = $("#select_somatorio_peso").prop("selectedIndex");
	if (opcao_somatorio != 0) {
		somatorio_percentagens_dia = $("#select_somatorio_peso option:selected").text();
	}

	var opcao_dias_entre = $("#select_dias_entre_aval").prop("selectedIndex");
	if (opcao_dias_entre != 0) {
		dias_entre_avaliacoes = $("#select_dias_entre_aval option:selected").text();
	}

	var regras_marcacao = getXMLRegras();

	var cursos = regras_marcacao.getElementsByTagName('curso');

	var curso_existe = false;

	for (var i = 0, j = cursos.length; i < j; i++) {
		var curso = cursos[i];

		var cod_curso_xml = curso.getAttribute("cod_curso");

		if (getCodCurso() == cod_curso_xml) {
			curso_existe = true;
		}
	}

	if (curso_existe != true) {

		var curso_novo = regras_marcacao.createElement("curso");
		curso_novo.setAttribute("cod_curso", getCodCurso());

		var ano_letivo_novo = regras_marcacao.createElement("ano_letivo");
		ano_letivo_novo.setAttribute("ano", ano_letivo_atual);

		var semestre_novo = regras_marcacao.createElement("semestre");
		semestre_novo.setAttribute("valor", semestre_para_xml);

		var regra_nova = regras_marcacao.createElement("regra");
		regra_nova.setAttribute("descrição", descricao_regra);

		var data_nova = regras_marcacao.createElement("data_limite");

		var dia_nova = regras_marcacao.createElement("dia");
		var dia_nova_valor = regras_marcacao.createTextNode(dia_input);
		dia_nova.appendChild(dia_nova_valor);

		var mes_nova = regras_marcacao.createElement("mes");
		var mes_nova_valor = regras_marcacao.createTextNode(mes_input);
		mes_nova.appendChild(mes_nova_valor);

		var ano_nova = regras_marcacao.createElement("ano");
		var ano_nova_valor = regras_marcacao.createTextNode(ano_input);
		ano_nova.appendChild(ano_nova_valor);

		data_nova.appendChild(dia_nova);
		data_nova.appendChild(mes_nova);
		data_nova.appendChild(ano_nova);

		var epoca_nova = regras_marcacao.createElement("epoca");
		var epoca_nova_valor = regras_marcacao.createTextNode(epoca);
		epoca_nova.appendChild(epoca_nova_valor);

		var ano_curricular_nova = regras_marcacao.createElement("ano_curricular");
		var ano_curricular_nova_valor = regras_marcacao.createTextNode(ano_curricular);
		ano_curricular_nova.appendChild(ano_curricular_nova_valor);

		var avaliacoes_dia_nova = regras_marcacao.createElement("avaliacões_dia");
		var avaliacoes_dia_nova_valor = regras_marcacao.createTextNode(avaliacoes_dia);
		avaliacoes_dia_nova.appendChild(avaliacoes_dia_nova_valor);

		var somatorio_percentagens_dia_nova = regras_marcacao.createElement("somatorio_percentagens_dia");
		var somatorio_percentagens_dia_nova_valor = regras_marcacao.createTextNode(somatorio_percentagens_dia);
		somatorio_percentagens_dia_nova.appendChild(somatorio_percentagens_dia_nova_valor);

		var dias_entre_avaliacoes_nova = regras_marcacao.createElement("dias_entre_avaliações");
		var dias_entre_avaliacoes_nova_valor = regras_marcacao.createTextNode(dias_entre_avaliacoes);
		dias_entre_avaliacoes_nova.appendChild(dias_entre_avaliacoes_nova_valor);

		regra_nova.appendChild(epoca_nova);
		regra_nova.appendChild(data_nova);
		regra_nova.appendChild(ano_curricular_nova);
		regra_nova.appendChild(avaliacoes_dia_nova);
		regra_nova.appendChild(somatorio_percentagens_dia_nova);
		regra_nova.appendChild(dias_entre_avaliacoes_nova);

		semestre_novo.appendChild(regra_nova);

		ano_letivo_novo.appendChild(semestre_novo);

		curso_novo.appendChild(ano_letivo_novo);

		regras_marcacao.getElementsByTagName('regras_avaliações')[0].appendChild(curso_novo);

	} else {

		var anos_letivos = curso.getElementsByTagName('ano_letivo');

		var ano_letivo_existe = false;

		for (var u = 0, j = anos_letivos.length; u < j; u++) {

			var ano_letivo = anos_letivos[u];

			var ano = ano_letivo.getAttribute("ano");

			if (ano == ano_letivo_atual) {
				ano_letivo_existe = true;
			}
		}

		if (ano_letivo_existe != true) {

			var ano_letivo_novo = regras_marcacao.createElement("ano_letivo");
			ano_letivo_novo.setAttribute("ano", ano_letivo_atual);

			var semestre_novo = regras_marcacao.createElement("semestre");
			semestre_novo.setAttribute("valor", semestre_para_xml);

			var regra_nova = regras_marcacao.createElement("regra");
			regra_nova.setAttribute("descrição", descricao_regra);

			var data_nova = regras_marcacao.createElement("data_limite");

			var dia_nova = regras_marcacao.createElement("dia");
			var dia_nova_valor = regras_marcacao.createTextNode(dia_input);
			dia_nova.appendChild(dia_nova_valor);

			var mes_nova = regras_marcacao.createElement("mes");
			var mes_nova_valor = regras_marcacao.createTextNode(mes_input);
			mes_nova.appendChild(mes_nova_valor);

			var ano_nova = regras_marcacao.createElement("ano");
			var ano_nova_valor = regras_marcacao.createTextNode(ano_input);
			ano_nova.appendChild(ano_nova_valor);

			data_nova.appendChild(dia_nova);
			data_nova.appendChild(mes_nova);
			data_nova.appendChild(ano_nova);

			var epoca_nova = regras_marcacao.createElement("epoca");
			var epoca_nova_valor = regras_marcacao.createTextNode(epoca);
			epoca_nova.appendChild(epoca_nova_valor);

			var ano_curricular_nova = regras_marcacao.createElement("ano_curricular");
			var ano_curricular_nova_valor = regras_marcacao.createTextNode(ano_curricular);
			ano_curricular_nova.appendChild(ano_curricular_nova_valor);

			var avaliacoes_dia_nova = regras_marcacao.createElement("avaliacões_dia");
			var avaliacoes_dia_nova_valor = regras_marcacao.createTextNode(avaliacoes_dia);
			avaliacoes_dia_nova.appendChild(avaliacoes_dia_nova_valor);

			var somatorio_percentagens_dia_nova = regras_marcacao.createElement("somatorio_percentagens_dia");
			var somatorio_percentagens_dia_nova_valor = regras_marcacao.createTextNode(somatorio_percentagens_dia);
			somatorio_percentagens_dia_nova.appendChild(somatorio_percentagens_dia_nova_valor);

			var dias_entre_avaliacoes_nova = regras_marcacao.createElement("dias_entre_avaliações");
			var dias_entre_avaliacoes_nova_valor = regras_marcacao.createTextNode(dias_entre_avaliacoes);
			dias_entre_avaliacoes_nova.appendChild(dias_entre_avaliacoes_nova_valor);

			regra_nova.appendChild(epoca_nova);
			regra_nova.appendChild(data_nova);
			regra_nova.appendChild(ano_curricular_nova);
			regra_nova.appendChild(avaliacoes_dia_nova);
			regra_nova.appendChild(somatorio_percentagens_dia_nova);
			regra_nova.appendChild(dias_entre_avaliacoes_nova);

			semestre_novo.appendChild(regra_nova);

			ano_letivo_novo.appendChild(semestre_novo);

			curso.appendChild(ano_letivo_novo);

		} else {

			var semestres = ano_letivo.getElementsByTagName('semestre');

			var semestre_existe = false;

			for (var r = 0, j = semestres.length; r < j; r++) {

				var semestre = semestres[r];

				var valor_semestre = semestre.getAttribute("valor");

				if (semestre_para_xml == valor_semestre) {
					semestre_existe = true;
				}
			}

			if (semestre_existe != true) {

				var semestre_novo = regras_marcacao.createElement("semestre");
				semestre_novo.setAttribute("valor", semestre_para_xml);

				var regra_nova = regras_marcacao.createElement("regra");
				regra_nova.setAttribute("descrição", descricao_regra);

				var data_nova = regras_marcacao.createElement("data_limite");

				var dia_nova = regras_marcacao.createElement("dia");
				var dia_nova_valor = regras_marcacao.createTextNode(dia_input);
				dia_nova.appendChild(dia_nova_valor);

				var mes_nova = regras_marcacao.createElement("mes");
				var mes_nova_valor = regras_marcacao.createTextNode(mes_input);
				mes_nova.appendChild(mes_nova_valor);

				var ano_nova = regras_marcacao.createElement("ano");
				var ano_nova_valor = regras_marcacao.createTextNode(ano_input);
				ano_nova.appendChild(ano_nova_valor);

				data_nova.appendChild(dia_nova);
				data_nova.appendChild(mes_nova);
				data_nova.appendChild(ano_nova);

				var epoca_nova = regras_marcacao.createElement("epoca");
				var epoca_nova_valor = regras_marcacao.createTextNode(epoca);
				epoca_nova.appendChild(epoca_nova_valor);

				var ano_curricular_nova = regras_marcacao.createElement("ano_curricular");
				var ano_curricular_nova_valor = regras_marcacao.createTextNode(ano_curricular);
				ano_curricular_nova.appendChild(ano_curricular_nova_valor);

				var avaliacoes_dia_nova = regras_marcacao.createElement("avaliacões_dia");
				var avaliacoes_dia_nova_valor = regras_marcacao.createTextNode(avaliacoes_dia);
				avaliacoes_dia_nova.appendChild(avaliacoes_dia_nova_valor);

				var somatorio_percentagens_dia_nova = regras_marcacao.createElement("somatorio_percentagens_dia");
				var somatorio_percentagens_dia_nova_valor = regras_marcacao.createTextNode(somatorio_percentagens_dia);
				somatorio_percentagens_dia_nova.appendChild(somatorio_percentagens_dia_nova_valor);

				var dias_entre_avaliacoes_nova = regras_marcacao.createElement("dias_entre_avaliações");
				var dias_entre_avaliacoes_nova_valor = regras_marcacao.createTextNode(dias_entre_avaliacoes);
				dias_entre_avaliacoes_nova.appendChild(dias_entre_avaliacoes_nova_valor);

				regra_nova.appendChild(epoca_nova);
				regra_nova.appendChild(data_nova);
				regra_nova.appendChild(ano_curricular_nova);
				regra_nova.appendChild(avaliacoes_dia_nova);
				regra_nova.appendChild(somatorio_percentagens_dia_nova);
				regra_nova.appendChild(dias_entre_avaliacoes_nova);

				semestre_novo.appendChild(regra_nova);

				ano_letivo.appendChild(semestre_novo);

			} else {

				var regras = semestre.getElementsByTagName('regra');

				var descricao_unica = true;

				for (var h = 0, j = regras.length; h < j; h++) {

					var regra = regras[h];

					var descricao_xml = regra.getAttribute("descrição");

					if (descricao_xml == descricao_regra) {
						descricao_unica = false;
					}
				}

				if (descricao_unica == true) {

					var regra_nova = regras_marcacao.createElement("regra");
					regra_nova.setAttribute("descrição", descricao_regra);

					var data_nova = regras_marcacao.createElement("data_limite");

					var dia_nova = regras_marcacao.createElement("dia");
					var dia_nova_valor = regras_marcacao.createTextNode(dia_input);
					dia_nova.appendChild(dia_nova_valor);

					var mes_nova = regras_marcacao.createElement("mes");
					var mes_nova_valor = regras_marcacao.createTextNode(mes_input);
					mes_nova.appendChild(mes_nova_valor);

					var ano_nova = regras_marcacao.createElement("ano");
					var ano_nova_valor = regras_marcacao.createTextNode(ano_input);
					ano_nova.appendChild(ano_nova_valor);

					data_nova.appendChild(dia_nova);
					data_nova.appendChild(mes_nova);
					data_nova.appendChild(ano_nova);

					var epoca_nova = regras_marcacao.createElement("epoca");
					var epoca_nova_valor = regras_marcacao.createTextNode(epoca);
					epoca_nova.appendChild(epoca_nova_valor);

					var ano_curricular_nova = regras_marcacao.createElement("ano_curricular");
					var ano_curricular_nova_valor = regras_marcacao.createTextNode(ano_curricular);
					ano_curricular_nova.appendChild(ano_curricular_nova_valor);

					var avaliacoes_dia_nova = regras_marcacao.createElement("avaliacões_dia");
					var avaliacoes_dia_nova_valor = regras_marcacao.createTextNode(avaliacoes_dia);
					avaliacoes_dia_nova.appendChild(avaliacoes_dia_nova_valor);

					var somatorio_percentagens_dia_nova = regras_marcacao.createElement("somatorio_percentagens_dia");
					var somatorio_percentagens_dia_nova_valor = regras_marcacao.createTextNode(somatorio_percentagens_dia);
					somatorio_percentagens_dia_nova.appendChild(somatorio_percentagens_dia_nova_valor);

					var dias_entre_avaliacoes_nova = regras_marcacao.createElement("dias_entre_avaliações");
					var dias_entre_avaliacoes_nova_valor = regras_marcacao.createTextNode(dias_entre_avaliacoes);
					dias_entre_avaliacoes_nova.appendChild(dias_entre_avaliacoes_nova_valor);

					regra_nova.appendChild(epoca_nova);
					regra_nova.appendChild(data_nova);
					regra_nova.appendChild(ano_curricular_nova);
					regra_nova.appendChild(avaliacoes_dia_nova);
					regra_nova.appendChild(somatorio_percentagens_dia_nova);
					regra_nova.appendChild(dias_entre_avaliacoes_nova);

					semestre.appendChild(regra_nova);

					status = true;

				} else {

					//do nothing

				}
			}
		}
	}

	return status;
}

/*
 *      ###################
 *      #                 #
 *      #     EVENTOS     #
 *      #                 #
 *      ###################
 */

$(document).on("click", "#skip_a", function() {

	return false;

});

$(document).on("click", "#botao_limpar_aval", function() {

	$(".spans_form_aval").show();

});

$(document).on("click", "#botao_limpar_regras", function() {

	$("#form_regras_6, #form_regras_7").hide();
	$(".spans_form_regras").show();

});

$(document).on("click", ".botoes_aprovar_calendario", function() {

	var opcao = $(this).attr('name');

	if (opcao == 'Sim') {
		aprovar_calendario();
	} else {
		$("#confirmar_aprovacao").hide();
		$("#aprovar_calendario").show();
	}
});

$(document).on("click", ".botoes_confirmar_regras", function() {

	var opcao = $(this).attr('name');

	if (opcao == 'Sim') {
		var status = definir_regra();
		if (status == true) {
			$('#confirmar_mods_grande_regras').hide();
			$('#botao_definir_regras, #botao_limpar_regras, #select_dias_entre_aval, #select_somatorio_peso').attr("disabled", false);
			$('#select_avals_dia, #select_ano, #select_epoca, #descricao_regra, #botao_definir_regras, #datepicker_regras').attr("disabled", false);
			$('#form_regras')[0].reset();
			$("#form_regras_6, #form_regras_7").hide();
			$('#botao_definir_regras').attr("disabled", true);
			$(".spans_form_regras").show();
			preencher_regras_direita();
			$('#existe_regra').hide();
		} else {
			$('#existe_regra').show();
			$('#confirmar_mods_grande_regras').hide();
			$('#botao_definir_regras, #botao_limpar_regras, #select_dias_entre_aval, #select_somatorio_peso').attr("disabled", false);
			$('#select_avals_dia, #select_ano, #select_epoca, #descricao_regra, #botao_definir_regras, #datepicker_regras').attr("disabled", false);
		}

	} else {
		$('#confirmar_mods_grande_regras').hide();
		$('#botao_definir_regras, #botao_limpar_regras, #select_dias_entre_aval, #select_somatorio_peso').attr("disabled", false);
		$('#select_avals_dia, #select_ano, #select_epoca, #descricao_regra, #botao_definir_regras, #datepicker_regras').attr("disabled", false);
	}

});

$(document).on("click", ".botoes_confirmar_aval", function() {

	var opcao = $(this).attr('name');

	if (opcao == 'Sim') {
		marcar_aval();
		$('#confirmar_mods_grande_marcar').hide();
		$('#botao_marcar_aval, #botao_limpar_aval').attr("disabled", false);
		$('#select_hora, #datepicker, #select_peso, #select_tipo, #imput_text_sala, #imput_text_obs').attr("disabled", false);
		$('#form_marcar_avaliacao')[0].reset();
		$('#botao_marcar_aval').attr("disabled", true);
		load_menu_avaliacoes_docente();
		$(".spans_form_aval").show();

	} else {
		$('#confirmar_mods_grande_marcar').hide();
		$('#botao_marcar_aval, #botao_limpar_aval').attr("disabled", false);
		$('#select_hora, #datepicker, #select_peso, #select_tipo, #imput_text_sala, #imput_text_obs').attr("disabled", false);
	}

	mes_login_mini();

});

$(document).on("click", "#botao_definir_regras", function() {

	$('#existe_regra').hide();
	$('#confirmar_mods_grande_regras').show();
	$('#botao_definir_regras, #botao_limpar_regras, #select_dias_entre_aval, #select_somatorio_peso').attr("disabled", true);
	$('#select_avals_dia, #select_ano, #select_epoca, #descricao_regra, #botao_definir_regras, #datepicker_regras').attr("disabled", true);

});

$(document).on("click", "#botao_marcar_aval", function() {

	$('#confirmar_mods_grande_marcar').show();
	$('#botao_marcar_aval, #botao_limpar_aval').attr("disabled", true);
	$('#select_hora, #datepicker, #select_peso, #select_tipo, #imput_text_sala, #imput_text_obs').attr("disabled", true);

});

$(document).on("change", "#curso_mostrar_select", function() {

	var docentes = getXMLDocentes();

	if ($(this).prop("selectedIndex") > 0) {

		var curso_select = $("#curso_mostrar_select option:selected").text();

		$(docentes).find("curso").each(function() {

			var $curso = $(this);
			var curso_xml = $curso.attr("nome_curso");
			var cod_curso = $curso.attr("cod_curso");

			if (curso_xml == curso_select) {
				setCodCurso(cod_curso);
				return false;
			}

		});
	}

	mes_login();
});

$(document).on("change", "#select_avals_dia", function() {

	if ($(this).prop("selectedIndex") > 1) {
		$("#form_regras_6, #form_regras_7").show();
	} else {
		$("#form_regras_6, #form_regras_7").hide();
	}

});

$(document).on("click", ".divs_form_regras", function() {

	var div_anterior = $(this).prev(".divs_form_regras").attr('id');

	if (div_anterior != null) {
		var id_elemento_anterior = "#" + div_anterior;

		if ($(id_elemento_anterior).find(">.obrigatorio").is("select") == true) {
			var elemento_seleccionado = $(id_elemento_anterior).find(">.obrigatorio").prop("selectedIndex");

			if (elemento_seleccionado == 0) {
				$(id_elemento_anterior).find(">span").show();
			} else {
				$(id_elemento_anterior).find(">span").hide();
			}

		} else {

			var elemento_seleccionado = $(id_elemento_anterior).find(">.obrigatorio").val();

			if (elemento_seleccionado == '') {
				$(id_elemento_anterior).find(">span").show();
			} else {
				$(id_elemento_anterior).find(">span").hide();
			}
		}

		var elements1 = $('#div_form_regras').find('span').filter(":hidden");
		quantidade = elements1.length;

		if (quantidade != 4) {
			$("#botao_definir_regras").attr("disabled", true);
		}
		if (quantidade == 4) {
			$("#botao_definir_regras").attr("disabled", false);
		}

	}

});

$(document).on("click", ".form_marcar_avaliacao", function() {

	var div_anterior = $(this).prev(".form_marcar_avaliacao").attr('id');

	if (div_anterior != null) {
		var id_elemento_anterior = "#" + div_anterior;

		if ($(id_elemento_anterior).find(">.obrigatorio").is("select") == true) {
			var elemento_seleccionado = $(id_elemento_anterior).find(">.obrigatorio").prop("selectedIndex");

			if (elemento_seleccionado == 0) {
				$(id_elemento_anterior).find(">span").show();
			} else {
				$(id_elemento_anterior).find(">span").hide();
			}

		} else {

			var elemento_seleccionado = $(id_elemento_anterior).find(">.obrigatorio").val();

			if (elemento_seleccionado == '') {
				$(id_elemento_anterior).find(">span").show();
			} else {
				$(id_elemento_anterior).find(">span").hide();
			}
		}

		var elements1 = $('#marcar_avaliacao_form_div').find('span').filter(":hidden");
		quantidade = elements1.length;

		if (quantidade != 4) {
			$("#botao_marcar_aval").attr("disabled", true);
		}
		if (quantidade == 4) {
			$("#botao_marcar_aval").attr("disabled", false);
		}

	}

});

$(document).on("click", ".links_opcoes", function() {

	var atributos = $(this).attr('for').split("|");

	var nome_disciplina_aluno = atributos[0];
	var cod_disciplina = atributos[1];
	setCodDisciplina(cod_disciplina);
	var opcao = $(this).text();

	if (opcao == "Avaliações") {

		$("#skip_a").attr("href", "#skip_avaliacoes");

		$('.link_ativo').text('Página Inicial');
		$('.link_inativo').text(' -> Avaliações (' + nome_disciplina_aluno + ')');

		$('#cabecalho_mensagens').hide();
		$('#conteudo_esconder').hide();
		$('#calendario').hide();

		actualizar_tabela_avaliacoes(cod_disciplina);

		$('#ver_avaliacoes').show();
	}

	if (opcao == 'Marcar Avaliação') {

		$("#skip_a").attr("href", "#skip_marcar_aval");

		var parametros = $(this).attr('for').split("|")
		var curso = parametros[0];
		var disciplina = parametros[1];
		var nome_disciplina = parametros[2];

		setCodCursoEscolhido(curso);
		setCodDisciplinaEscolhida(disciplina);

		$('.link_ativo').text('Página Inicial');
		$('.link_inativo').text(' -> Marcar avaliação(' + nome_disciplina + ')');

		$('#cabecalho_mensagens').hide();
		$('#conteudo_esconder').hide();
		$('#calendario, .confirmar_mods_grande').hide();
		$('#opcoes_calendario_cabecalho, #conteudo_opcoes_calendario').hide();
		$('#dicas, #cabecalho_dicas, #definir_regras, #ver_inscritos_grande').hide();

		//$("#avaliacoes_direita").css('height', '94%');
		document.getElementById("avaliacoes_direita").style.height = "94%";

		$('#marcar_avaliacao_grande, .spans_form_aval').show();

		$("#botao_marcar_aval").attr("disabled", true);

		mes_login_mini();
	}

	if (opcao == "Ver Inscritos") {

		$("#skip_a").attr("href", "#skip_inscritos");

		var parametros = $(this).attr('for').split("|")
		var curso = parametros[0];
		var disciplina = parametros[1];
		var nome_disciplina = parametros[2];

		setCodCursoEscolhido(curso);
		setCodDisciplinaEscolhida(disciplina);

		$('.link_ativo').text('Página Inicial');
		$('.link_inativo').text(' -> Ver Inscritos(' + nome_disciplina + ')');

		$('#cabecalho_mensagens').hide();
		$('#conteudo_esconder').hide();
		$('#calendario, .confirmar_mods_grande').hide();
		$('#opcoes_calendario_cabecalho, #conteudo_opcoes_calendario').hide();
		$('#dicas, #cabecalho_dicas, #marcar_avaliacao_grande').hide();

		$('#ver_inscritos_grande').show();

		$("#select_avals, #label_select_avals").show();
		$("#avaliacao_js, #table_inscritos, #inscritos_none").hide();

		$('#table_inscritos').find("tbody").empty();

		document.getElementById("avaliacoes_direita").style.height = "94%";

	}

	return false;

});

$(document).on("click", "#opcao_coordenador_1", function() {

	$("#skip_a").attr("href", "#skip_regras");

	$('.link_ativo').text('Página Inicial');
	$('.link_inativo').text(' -> Definir regras de marcação de momentos de avaliação');

	$('#cabecalho_mensagens').hide();
	$('#conteudo_esconder').hide();
	$('#calendario').hide();
	$('#form_regras_6, #form_regras_7').hide();

	$('#definir_regras').show();
	//$("#regras_direita").css('height', '94%');
	document.getElementById("regras_direita").style.height = "94%";

	$(".spans_form_regras").show();

	preencher_regras_direita();

	return false;

});

$(document).on("click", "#aprovar_calendario", function() {

	$("#confirmar_aprovacao").show();
	$("#aprovar_calendario").hide();

});

$(document).on("click", ".botao_inscrever_avaliacao", function() {

	var cod_avaliacao = $(this).attr('for');

	inscrever_aval_botao(cod_avaliacao);
});

$(document).on("click", ".botao_alterar_estado_avaliacao", function() {

	var cod_avaliacao = $(this).attr('for');
	var operacao = $(this).attr('name');
	var cod_disciplina_local = getCodDisciplina();

	if (operacao == 'Inscrever') {
		inscrever_aval_botao(cod_avaliacao);
		actualizar_tabela_avaliacoes(cod_disciplina_local);
	} else {
		anular_inscrever_aval_botao(cod_avaliacao);
		actualizar_tabela_avaliacoes(cod_disciplina_local);
	}
});

$(document).on("click", ".link_ativo", function() {

	$("#skip_a").attr("href", "#skip_calendario");

	$('#cabecalho_mensagens').show();
	$('#calendario').show();

	$('#ver_avaliacoes, #definir_regras').hide();
	$('#regras_direita').hide();
	$('#cabecalho_regras').hide();
	$('#opcoes_calendario_cabecalho, #conteudo_opcoes_calendario').show();
	$('#dicas, #cabecalho_dicas').show();
	$('#avaliacoes_direita, #cabecalho_avaliacoes').show();

	$('.link_inativo').text('Página Inicial');
	$('.link_ativo').text('');

	document.getElementById("avaliacoes_direita").style.height = "52%";
	document.getElementById("regras_direita").style.height = "52%";

	mes_login();

});

$(document).on("click", ".botoes_voltar", function() {

	$("#skip_a").attr("href", "#skip_calendario");

	$('#cabecalho_mensagens').show();
	$('#calendario').show();

	$('#ver_avaliacoes, #definir_regras, #marcar_avaliacoes_grande, #ver_inscritos_grande').hide();
	$('#regras_direita').hide();
	$('#cabecalho_regras').hide();
	$('#opcoes_calendario_cabecalho, #conteudo_opcoes_calendario').show();
	$('#dicas, #cabecalho_dicas').show();
	$('#avaliacoes_direita, #cabecalho_avaliacoes').show();

	//$("#avaliacoes_direita").css('heigth', '50%');
	document.getElementById("avaliacoes_direita").style.height = "52%";

	$('.link_inativo').text('Página Inicial');
	$('.link_ativo').text('');

	mes_login();
});

$(document).on("click", "#botao_mensagem_anterior", function() {

	var mensagens = getMensagens();
	// código para a mensagem anterior
});
$(document).on("click", "#botao_mensagem_seguinte", function() {

	var mensagens = getMensagens();
	// código para a mensagem seguinte
});
$(document).on("click", "#botao_ignorar_mensagem", function() {

	var mensagens = getMensagens();
	// código para a mensagem a marcar como lida
});

$(document).on("click", "li", function(ev) {

	$(this).find('>ul.sub-sub-menu').slideToggle();
	ev.stopPropagation();

	var texto = $(this).find('span.alternate').text();

	if (texto == "[-]") {
		$(this).find('span.alternate').text("[+]");
	} else {
		$(this).find('span.alternate').text("[-]");
	}
	
	return false;
	
});

$(document).on("click", "#esconder_opcoes_calendario", function() {

	$('#conteudo_opcoes_calendario').slideToggle();

	var texto = $('#esconder_opcoes_calendario').text();

	if (texto == "[-]") {
		$('#esconder_opcoes_calendario').text("[+]");
	}
	if (texto == "[+]") {
		$('#esconder_opcoes_calendario').text("[-]");
	} else {
		$('#esconder_opcoes_calendario').text("[+]");
	}

});

$(document).on("click", "#esconder_dicas", function() {

	$('#dicas').slideToggle();

	var texto = $('#esconder_dicas').text();

	if (texto == "[-]") {
		$('#esconder_dicas').text("[+]");
	}
	if (texto == "[+]") {
		$('#esconder_dicas').text("[-]");
	} else {
		$('#esconder_dicas').text("[+]");
	}
});

$(document).on("click", "#esconder_opcoes_historico", function() {

	$('#Conteudo_anos_anteriores').slideToggle();

	var texto = $('#esconder_opcoes_historico').text();

	if (texto == "[-]") {
		$('#esconder_opcoes_historico').text("[+]");
	}
	if (texto == "[+]") {
		$('#esconder_opcoes_historico').text("[-]");
	} else {
		$('#esconder_opcoes_historico').text("[+]");
	}
});

$(document).on("click", ".botao_ver_inscritos", function() {

	var attrs = $(this).attr('for').split("|");
	var cod_aval = attrs[0];
	var data = attrs[1];
	var hora = attrs[2];
	var sigla = attrs[3];

	$('.link_inativo').text('');
	$('.link_ativo').text('Página Inicial');
	$('.link_inativo').text(' -> Ver Inscritos (' + sigla + ')');

	$('#cabecalho_mensagens').hide();
	$('#conteudo_esconder').hide();
	$('#calendario, .confirmar_mods_grande').hide();
	$('#opcoes_calendario_cabecalho, #conteudo_opcoes_calendario').hide();
	$('#dicas, #cabecalho_dicas, #marcar_avaliacao_grande, #definir_regras').hide();

	document.getElementById("avaliacoes_direita").style.height = "94%";

	$('#ver_inscritos_grande').show();

	$('#table_inscritos').find("tbody").empty();

	ver_inscritos(cod_aval);

	var valor_select = data + " | " + hora + " H";
	$("#select_avals").val(valor_select).attr('selected', true);

	$("#select_avals, #label_select_avals").hide();
	$("#avaliacao_js").html('<label id="label_avals">Avaliação: ' + valor_select + '</label>');

});

$(document).on("click", "#botao_esconder_centro", function() {

	$('.esconder_componente_msg').slideToggle();

	if ($('#botao_esconder_centro').val() == 'Esconder') {
		$('#botao_esconder_centro').val('Mostrar');
	} else {
		$('#botao_esconder_centro').val('Esconder');
	}
});

$(document).on("change", "#select_avals", function() {

	var avaliacoes = getXMLAvaliacoes();
	var aval = $(this).val().split(" | ");

	var data_aval = aval[0];
	var hora_aval_temp = aval[1].split(" ");
	var hora_aval = hora_aval_temp[0];

	var disciplina_selecionada = getCodDisciplinaEscolhida();
	var curso_mostrar = getCodCursoEscolhido();

	var ano_semestre = calcular_ano_actual();
	var ano_letivo_atual = ano_semestre[0];
	var semestre_atual = ano_semestre[1];

	var $avaliacoes_cursos = $(avaliacoes).find('curso');
	var $avaliacoes_curso = null;

	var cod_aval = "";

	$avaliacoes_cursos.each(function() {
		var $curso = $(this);
		var curso_xml_avals = $curso.attr("cod_curso");

		if (curso_mostrar == curso_xml_avals) {

			$curso.find('ano_letivo').each(function() {
				var $ano = $(this);

				var ano_lectivo_xml = $ano.attr('ano_letivo');

				$ano.find('semestre').each(function() {
					var $semestre = $(this);

					var valor_semestre_xml_disciplinas = $semestre.attr("semestre");

					var semestre_xml_disciplinas = 'par';

					if (valor_semestre_xml_disciplinas == '1') {
						semestre_xml_disciplinas = 'impar';
					}

					if (ano_lectivo_xml == ano_letivo_atual && semestre_atual == semestre_xml_disciplinas) {
						$avaliacoes_curso = $(this);
					}

				});

			});

		}
	});

	if ($avaliacoes_curso != null) {
		$avaliacoes_curso.find('momento').each(function() {

			var $momento = $(this);
			var cod_momento = $momento.attr("cod");

			var $data_avaliacao = $momento.find("data");
			var dia_xml = $data_avaliacao.find("dia").text();
			var mes_xml = $data_avaliacao.find("mes").text();
			var ano_xml = $data_avaliacao.find("ano").text();

			var data = dia_xml.concat("-").concat(mes_xml).concat("-").concat(ano_xml);
			var cod_uc_momento = $momento.find("uc").text();
			var hora_momento = $momento.find("horario").text();

			if (data == data_aval && cod_uc_momento == disciplina_selecionada && hora_momento == hora_aval) {
				cod_aval = cod_momento;
			}

		});
	}

	if (cod_aval != "") {
		$("#table_inscritos").show();
		$("#table_inscritos").find("tbody").empty();
		ver_inscritos(cod_aval);
	}

});

$(document).on("click", "#botao_limpar_inscritos", function() {

	var valor_select = "Escolha uma avaliação(data | hora)";
	$("#select_avals").val(valor_select).attr('selected', true);

	$("#tabela_inscritos_div, #inscritos_none").hide();

});

$(document).on("click", ".dia_semana", function() {

	var dia = $(this);

	var dia_calen = $(dia).find('>div.teste').text();

	if (getTipoUtilizador() != 'aluno') {
		$("#avaliacoes_direita").html(dia_calen + "<p>Funcionalidade não implementada a 100%</p>");
	}

});

$(document).on("click", ".dia_semana_mini", function() {

	var dia = $(this);

	var $c = dia.css("background-color");

	if ($c != 'rgb(255, 255, 255)') {
		//do nothing
	} else {

		var dia_mes_str = dia.text();
		var tipo_dia = dia_mes_str.match(/\d+/g);

		if (tipo_dia != null) {
			var mes_ano = $("#mes_actual_mini").html().split("/");

			var mes_str = mes_ano[0];
			var ano = mes_ano[1];
			var mes = 0;

			for (var i = 0, j = meses.length; i < j; i++) {
				var mes_temp = meses[i];

				if (mes_temp == mes_str) {
					mes = i + 1;
					break;
				}

			}

			tipo_dia = (tipo_dia < 10 ? "0" : "" ) + tipo_dia;
			mes = (mes < 10 ? "0" : "" ) + mes;

			var data = tipo_dia + "-" + mes + "-" + ano;
			$("#datepicker").val(data);
		}
	}

});

$(document).on("click", '#mudar_cargo', function() {

	if ($('#mudar_cargo').val() == 'Assumir cargo de Coordenador') {
		$('#mudar_cargo').val('Assumir cargo de Docente');
		load_coordenador();
		$(".select_cursos").hide();

		$('#cabecalho_mensagens').show();
		$('#calendario').show();

		$('#ver_avaliacoes, #definir_regras, #marcar_avaliacoes_grande, #ver_inscritos_grande').hide();
		$('#regras_direita').hide();
		$('#cabecalho_regras').hide();
		$('#opcoes_calendario_cabecalho, #conteudo_opcoes_calendario').show();
		$('#dicas, #cabecalho_dicas').show();
		$('#avaliacoes_direita, #cabecalho_avaliacoes').show();

		//por alguma razão a versão com jq não funciona
		document.getElementById("avaliacoes_direita").style.height = "52%";
		//$("#avaliacoes_direita").css('heigth', '50%');

		$('.link_inativo').text('Página Inicial');
		$('.link_ativo').text('');

	} else {
		$('#mudar_cargo').val('Assumir cargo de Coordenador');
		load_docente();

		$('#cabecalho_mensagens').show();
		$('#calendario').show();

		$('#ver_avaliacoes, #definir_regras, #marcar_avaliacoes_grande, #ver_inscritos_grande').hide();
		$('#regras_direita').hide();
		$('#cabecalho_regras').hide();
		$('#opcoes_calendario_cabecalho, #conteudo_opcoes_calendario').show();
		$('#dicas, #cabecalho_dicas').show();
		$('#avaliacoes_direita, #cabecalho_avaliacoes').show();

		$('.link_inativo').text('Página Inicial');
		$('.link_ativo').text('');
	}
});

$(document).ready(function() {
	$('#logout').click(function() {
		log_out();
	});
});
